//package com.taptech.doufu.ui.view.weex;
//
//
//import android.graphics.Color;
//import android.support.annotation.NonNull;
//import android.text.Spannable;
//import android.text.SpannableString;
//import android.text.Spanned;
//import android.text.style.ForegroundColorSpan;
//
//import com.taobao.weex.dom.WXTextDomObject;
//
//import com.taobao.weex.utils.WXResourceUtils;
//import com.taobao.weex.utils.WXUtils;
//import com.taptech.doufu.weex.TFClickableSpan;
//import com.taptech.doufu.app.WeMediaApplication;
//import com.taptech.doufu.weex.QLXStringUtil;
//
//import java.util.Map;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//
///**
// * Created by qlx on 2016/12/8.
// */
//
//public class QLXTextDomObject extends WXTextDomObject {
//    private String mRangeText = null;
//    private int  mRangeColor = -1;
//    private Boolean mAtHilighted = false;
//    @NonNull
//    @Override
//    public Spanned createSpanned(String text) {
//        SpannableString res = (SpannableString) super.createSpanned(text);
//        if ((mRangeText != null) && (res instanceof  SpannableString)){
//
//            String[] splits = mRangeText.split("\\|");
//            for (String split:splits) {
//                _handleTextColor(res,text,split,mRangeColor);
//            }
//        }
//
//        if (mAtHilighted){
//            Pattern pat = Pattern.compile("(@[^@\\s#]{2,})");
//            Matcher mat = pat.matcher(text);
//
//            int color = Color.parseColor("#fe6e6e");
//            if (WeMediaApplication.getInstance().isDayNightMode_Night){
//                color = Color.parseColor("#7f3037");
//            }
//            while (mat.find()) {
//                int start = mat.start();
//                int end = mat.end();
//                String sub = text.substring(start + 1, end);
//                res.setSpan(new TFClickableSpan(sub,color),start,end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//            }
//        }
//
//
//
//        return  res;
//    }
//
//    private void _handleTextColor(SpannableString res , String text, String split ,int color ){
//        int[] indexs = QLXStringUtil.indexsOf(text, split);
//        if (indexs != null){
//            for (int index : indexs){
//                res.setSpan(new ForegroundColorSpan(color),index,index + split.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//            }
//        }
//    }
//
//
//
//    @Override
//    public void layoutBefore() {
//        this.updateExtraAttr(this.getAttrs());
//        super.layoutBefore();
//    }
//
//    @Override
//    public void updateAttr(Map<String, Object> attrs) {
//        if (attrs instanceof Map){
//           this.updateExtraAttr(attrs);
//        }
//        super.updateAttr(attrs);
//    }
//
//    public void updateExtraAttr(Map<String, Object> attrs){
//        if (attrs instanceof  Map){
//            Object value =attrs.get("rangeColor");
//            if (value != null){
//                String color = (value instanceof  String) ? (String) value : value.toString();
//                mRangeColor = WXResourceUtils.getColor(color);
//            }
//
//            Object rangeText = attrs.get("rangeText");
//            if (rangeText != null){
//                mRangeText = WXUtils.getString(rangeText,null);
//            }
//
//            Object at = attrs.get("at");
//            if (at != null){
//                mAtHilighted = WXUtils.getBoolean(at,false);
//            }
//        }
//
//    }
//}
//
